import { defineStore } from 'pinia';
import publicApi from '@/api';
import common from '@/utils/common';
export const useDictStore = defineStore('Dict', {
  // data存放模块的变量
  state() {
    return {
      dictTree: [], // 字典树
      dictItemList: [], //下拉列表选项
      dictOptionList: [],
      //   staffTypeList: [], // 员工类别
      //   staffStatusList: [], // 员工状态
      //   jobList: [], // 职务
    };
  },
  //计算属性
  getters: {},
  //methed方法
  actions: {
    // 获取字典树
    getDictTree(params) {
      return new Promise((resolve, reject) => {
        publicApi.sys
          .getDictTree(params)
          .then((response) => {
            this.dictTree = response.data;
            resolve(response.data);
          })
          .catch((error) => {
            reject(error);
          });
      });
    },
    //获取字典明细所有数据
    getAllDictOptions: function () {
      return new Promise((resolve, reject) => {
        publicApi.sys
          .getAllDictItems()
          .then((response) => {
            this.dictItemList = response.data;
            resolve(response.data);
          })
          .catch((error) => {
            reject(error);
          });
      });
    },

    // 获取指定类型的明细列表
    getDictSelct(code) {
      let arr = [];
      return new Promise((resolve, reject) => {
        if (!this.dictItemList || !this.dictItemList.length) {
          this.getAllDictOptions().then((res) => {
            arr = res.filter((a) => {
              return a.ParentCode == code;
            });
            resolve(arr);
          });
        } else {
          arr = this.dictItemList.filter((a) => {
            return a.ParentCode == code;
          });

          resolve(arr);
        }
      });
    },
  },
  // 添加 persist 属性，持久化保存
  persist: {
    key: 'dictStore', //存储名称
    storage: sessionStorage, // 存储方式
    paths: ['dictItemList'], //指定 state 中哪些数据需要被持久化。[] 表示不持久化任何状态，undefined 或 null 表示持久化整个 state
  },
});
